<?php


namespace app\common\validate\merchant;


use yiqiniu\extend\validate\YqnValidate;

/**
 * 商户充值记录
 * Class RechargeLog
 * @package app\common\validate
 */
class RechargeLogValid extends YqnValidate
{

    /**
     *  字段：'id'，    类型：'bigint',    是否为空：1,    说明：
     *  字段：'mer_id'，    类型：'character varying(20)',    是否为空：1,    说明：店铺ID
     *  字段：'pay_order'，    类型：'character varying(50)',    是否为空：1,    说明：支付单号
     *  字段：'pay_way'，    类型：'smallint',    是否为空：1,    说明：支付方式 1:线上支付   2:线下转帐 3:银行扫码
     *  字段：'pay_money'，    类型：'numeric(10,2)',    是否为空：1,    说明：支付金额
     *  字段：'real_money'，    类型：'numeric(10,2)',    是否为空：1,    说明：实际金额
     *  字段：'pay_status'，    类型：'smallint',    是否为空：1,    说明：支付状态 0:未支付  1已支付
     *  字段：'memo'，    类型：'character varying(500)',    是否为空：,    说明：备注
     *  字段：'audit_mng_id'，    类型：'integer',    是否为空：1,    说明：审核管理员
     *  字段：'audit_time'，    类型：'timestamp(0) without time zone',    是否为空：1,    说明：审核时间
     *  字段：'op_user'，    类型：'integer',    是否为空：1,    说明：操作人
     *  字段：'create_at'，    类型：'timestamp(0) without time zone',    是否为空：1,    说明：创建时间
     *  字段：'update_at'，    类型：'timestamp(0) without time zone',    是否为空：,    说明：更新时间
     */

    /**
     *  验证规则
     */
    protected $rule = [
        'id' => 'require|number',
        'mer_id' => 'require',
        'pay_order' => 'require|dbExists:recharge_log,pay_order',
        'pay_way' => 'require|number',
        'pay_money' => 'require|float',
        'real_money' => 'require|float|gt:0',
        'pay_status' => 'require|number',
        'audit_mng_id' => 'require|number',
        'audit_time' => 'require|date',
        'op_user' => 'require|number',
        'create_at' => 'require|date',
        'update_at' => 'date',


    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名'    =>    '错误信息'
     *
     * @var array
     */
    protected $message = [
        'id.require' => '不能为空',
        'id.number' => '只能为数字类型',
        'mer_id.require' => '店铺ID不能为空',
        'pay_order.require' => '支付单号不能为空',
        'pay_order.dbExists' => '支付单号不存在',
        'pay_way.require' => '支付方式不能为空',
        'pay_way.number' => '支付方式只能为数字类型',
        'pay_money.require' => '支付金额不能为空',
        'pay_money.float' => '支付金额只能为数字可带小数点',
        'real_money.require' => '实际金额不能为空',
        'real_money.float' => '实际金额只能为数字可带小数点',
        'real_money.gt' => '真实金额必须大于0',
        'pay_status.require' => '支付状态不能为空',
        'pay_status.number' => '支付状态只能为数字类型',
        'audit_mng_id.require' => '审核管理员不能为空',
        'audit_mng_id.number' => '审核管理员只能为数字类型',
        'op_user.require' => '操作人不能为空',
        'op_user.number' => '操作人只能为数字类型',
        'create_at.require' => '创建时间不能为空',
    ];

    //验证场景
    protected $scene = [
        // 线下支付
        'offline_pay' => ['pay_order', 'real_money'],
        // 支付详情
        'info' => ['pay_order'],
    ];
}